This article will walk you through the process of implementing MailChimp into your instance of DotKernel API using drewm/mailchimp-api
Step 1: Add the library to your application using the following command:
 composer require drewm/mailchimp-api 
Step 2: Create configuration file config/autoload/mailchimp.global.php and paste the following content inside of it:
<?php
declare(strict_types=1);
return [
    'mailChimp' => [
        'apiKey' => '{YOUR_API_KEY_HERE}'
        // you can add more MailChimp-related parameters to this array
    ]
];
Step 3: Create factory src/App/src/MailChimp/Factory/MailChimpFactory.php which will return an instance of DrewM\MailChimp. Paste the following content inside this file:
<?php
declare(strict_types=1);
namespace Api\App\MailChimp\Factory;
use DrewM\MailChimp\MailChimp;
use Psr\Container\ContainerInterface;
/**
 * Class MailChimpFactory
 * @package Api\App\MailChimp\Factory
 */
class MailChimpFactory
{
    /**
     * @param ContainerInterface $container
     * @return MailChimp
     * @throws \Exception
     */
    public function __invoke(ContainerInterface $container) : MailChimp
    {
        $config = $container->get('config')['mailChimp'] ?? [];
        return new MailChimp($config['apiKey'] ?? '');
    }
}
Step 4: Let your application use this factory by adding it to the main ConfigProvider:
To do this, open file src/App/src/ConfigProvider.php and locate the method called getDependencies().
Inside this method, locate the key factories which points to an array. Inside this array add the following line:
MailChimp::class => MailChimpFactory::class,
Make sure you you add the corresponding uses:
use Api\App\MailChimp\Factory\MailChimpFactory; use DrewM\MailChimp\MailChimp;
After this, you can start using the library by @Injecting MailChimp::class where it’s needed.
Looking for PHP, Laminas or Mezzio Support?
As part of the Laminas Commercial Vendor Program, Apidemia offers expert technical support and services for:
Leave a Reply